#include <iostream>
#include <cstring>
using namespace std;

/*
	保护继承和私有继承什么情况下使用？
        has-a这种关系就可以使用保护继承或者私有继承来描述
    保护继承和私有继承有啥区别？
*/
class Car
{
public:
	void show()
	{
		cout<<"我是一台法拉利"<<endl;
	}
private:
	void motor()
	{
		cout<<"用的V12的发动机"<<endl;
	}
protected:
	void showColor()
	{
		cout<<"法拉利是黄颜色的"<<endl;
	}
};

//老师拥有汽车
class Teacher:private Car //私有继承，描述has-a
{
public:
	void fun()
	{
		show();
		showColor();
	}
};

class OeyTeacher:private Teacher
{
public:
	void otherfun()
	{
		show();
		showColor();
	}	
};



int main(int argc,char **argv)
{
	//Teacher t1;
	//t1.fun();
	
	//对于幼儿园老师来说，Car不是一个可以访问的基类
	//error: ‘Car’ is not an accessible base of ‘OeyTeacher’
	OeyTeacher o1;
	o1.otherfun();
	return 0;	
}